<?php

// Acceso restringido
defined('JL') or die('Acceso restringido');

/**
 * Base class for controllers
 * @property      JLView $View
 * @property      JLAjax $Ajax
 */
abstract class JLControllerBase {

    protected $View;
    protected $Ajax;

    //Construnctor de la Clase ControllerBase
    function __construct() {
        // Referencia  ala clase View
        $this->View = new JLView();

        require JLPATH_LIBRARIES . DS . 'JLAjax.class.php';
        $this->Ajax = JLAjax::getInstance();
        $this->Ajax->checkToken();
    }

    function __destruct() {
        $config = Config::getInstance();
        $cnn = $config->get('dbCnn');

        if (is_resource($cnn)) {
            // cierra la coneccion
            mysql_close($cnn);
        }
    }

    /**
     * Redireciona la pagina del sistema
     * @Params opcional $path[String] url
     * @Retorna no
     */
    function redirect($path="../") {
        // Redireccion para evitar reenvio de datos
        header("Location: ./redirect/?id=" . $path);
        echo "<script>document.location ='./redirect/?id=" . $path . "';</script>";
    }

    /**
     * Verifica si una variable esta definida y no es vacia.
     * @Params $val[String] variable
     * @Return bool
     */
    function isSetNoEmpty($val) {
        $bool = false;
        $val = trim($val);

        if (isset($val) && !empty($val)) {
            $bool = true;
        }

        return $bool;
    }

    /**
     * Conprueva si el usuario esta logueado
     * @Return Bool
     */
    function logueado() {
        return ($_SESSION['_session_id'] == session_id());
    }

    protected function headerJSON($data = '') {
        $this->Ajax->jsonHeader($data);
    }

    protected function headerJavascript($data = '') {
        $this->Ajax->jsHeader($data);
    }

}